package com.cz.zslu.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 订单管理
 * </p>
 *
 * @author 森森
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("zsl_order")
public class ZslOrder extends SuperEntity<ZslOrder> {

    private static final long serialVersionUID = 1L;

    /**
     * 支付时间
     */
    @ApiModelProperty("支付时间")
    @TableField("pay_time")
    private Date payTime;
    /**
     * 完结时间
     */
    @ApiModelProperty("完结时间")
    @TableField("collect_time")
    private Date collectTime;
    /**
     * 状态1 待付款 2 待发货 3 待确认收货 4 交易成功 5 交易关闭 6已评价
     */
    @ApiModelProperty("是否删除 0：正常，1：删除 ")
    private Integer status=0;

    /**
     * 删除状态 0：正常，1 ：草稿箱 2：彻底删除
     */
    @ApiModelProperty("订单状态1 待付款 2 待发货 3 待确认收货 4 交易成功 5 交易关闭 6已评价")
    private Integer state;

    /**
     * 买家id
     */
    @ApiModelProperty("买家id")
    @TableField("user_id")
    private Long userId;
    /**
     * 卖家id
     */
    @ApiModelProperty("卖家id")
    @TableField("seller_user_id")
    private Long sellerUserId;
    /**
     * 运费计算
     */
    @ApiModelProperty("运费计算")
    private BigDecimal freight;
    /**
     * 总价
     */
    @ApiModelProperty("总价")
    @TableField("total_price")
    private BigDecimal totalPrice;

    /**
     * 支付方式 1 支付宝 2 微信
     */
    @ApiModelProperty("支付方式 1 支付宝 2 微信")
    @TableField("pay_type")
    private Integer payType;
    /**
     * 备注信息
     */
    @ApiModelProperty("备注信息")
    private String remark;
    /**
     * 取消原因
     */
    @ApiModelProperty("取消原因")
    @TableField("cancel_remark")
    private String cancelRemark;
    /**
     * 退款原因
     */
    @ApiModelProperty("退款原因")
    @TableField("refund_remark")
    private String refundRemark;

    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    private String name;
    /**
     * 联系号码
     */
    @ApiModelProperty("联系号码")
    private String phone;
    /**
     * 省
     */
    @ApiModelProperty("省")
    private String province;
    /**
     * 市
     */
    @ApiModelProperty("市")
    private String city;
    /**
     * 区
     */
    @ApiModelProperty("区")
    private String district;
    /**
     * 地址
     */
    @ApiModelProperty("地址")
    private String address;

    /**
     * 商铺名称
     */
    @ApiModelProperty("商铺名称")
    @TableField("store_name")
    private  String storeName;


    @ApiModelProperty("类型（0：商品订单，1：加盟订单）")
    @TableField("type")
    private  Integer type;

    @TableField(exist = false)
    @ApiModelProperty("订单内的商品")
    private List<ZslOrderCommodty> commodties = Lists.newArrayList();

    @TableField(exist = false)
    @ApiModelProperty("店铺信息")
    private ZslStore zslStore;
}
